home *** CD-ROM | disk | FTP | other *** search
/ Power DOS 1996 July / Power DOS - July 1996.iso / sound / c_labs / devinfo / recplay.exe / SBDEFS.H < prev   
Encoding:
C/C++ Source or Header  |  1996-01-25  |  3.5 KB  |  94 lines

  1. /*
  2.  * SBDEFS.H
  3.  *
  4.  * Constants for Sound Blaster, PIC, and DMAC.
  5.  */
  6.  
  7. /* constants for 8250 Peripheral Interrupt Controller */
  8. #define PIC1MODE     0x20       // for irq 0 - 7
  9. #define PIC1MASK     0x21
  10. #define PIC2MODE     0xA0       // for irq 8 - 15
  11. #define PIC2MASK     0xA1
  12. #define PICEOI       0x20       // End Of Interrupt, for either PIC
  13.  
  14.  
  15.  
  16. /* DSP commands */
  17. #define dspcmdDirect8DAC  0x10   /* DSP Direct 8-bit DAC command */
  18. #define dspcmdDMADAC      0x14   /* DSP 8-bit DMA DAC command */
  19. #define dspcmdAUTODMADAC  0x1C   /* DSP 8-bit ADC Auto-init DMA transfer */
  20.  
  21. #define dspcmdDirectADC   0x20   /* DSP Direct ADC command */
  22. #define dspcmdDMAADC      0x24   /* DSP 8-bit DMA ADC command */
  23. #define dspcmdAUTODMAADC  0x2C   /* DSP 8-bit ADC Auto-init DMA transfer */
  24.  
  25. #define dspcmdHaltDMA8    0xD0   /* pause 8-bit DMA */
  26. #define dspcmdContDMA8    0xD4   /* continue 8-bit DMA */
  27. #define dspcmdExitAuto8   0xDA   /* stop auto-init DMA transfer */
  28.  
  29. #define dspcmdHaltDMA16   0xD5   /* pause 16-bit DMA */
  30. #define dspcmdContDMA16   0xD6   /* continue 16-bit DMA */
  31. #define dpscmdExitDMA16   0xD9   /* stop 16-bit DMA */
  32.  
  33. #define dspcmdSpeakerOn   0xD1   /* turn speaker on */
  34. #define dspcmdSpeakerOff  0xD3   /* turn speaker off */
  35. #define dspcmdSpeakerStat 0xD8   /* get speaker status */
  36.  
  37. #define dspcmdTimeConst   0x40   /* Set time constant */
  38. #define dspcmdDASampRate  0x41   /* D/A Sample Rate (SB16 only) */
  39. #define dspcmdADSampRate  0x42   /* A/D Sample Rate (SB16 only) */
  40. #define dspcmdBlockSize   0x48   /* Set block size */
  41.  
  42. #define dspSB16DMA16      0xB0   /* PARTIAL command for 16-bit DMA on SB16 */
  43. #define dspSB16DMA8       0xC0   /* PARTIAL command for 16-bit DMA on SB16 */
  44. #define dspSB16DAC     (0 << 3)  /* bit for SB16 D/A */
  45. #define dspSB16ADC     (1 << 3)  /* bit for SB16 A/D */
  46. #define dspSB16SC      (0 << 2)  /* bit for SB16 Single Cycle */
  47. #define dspSB16AI      (1 << 2)  /* bit for SB16 Auto Init */
  48. #define dspSB16FifoOff (0 << 1)  /* bit for SB16 FIFO off */
  49. #define dspSB16FifoOn  (1 << 1)  /* bit for SB16 FIFO on */
  50.  
  51. #define dspSB16ModeMono     (0 << 5)  // SB16 mono voice I/O
  52. #define dspSB16ModeStereo   (1 << 5)  // SB16 stereo voice I/O
  53. #define dspSB16ModeUnsigned (0 << 4)  // SB16 unsigned voice I/O
  54. #define dspSB16ModeSigned   (1 << 4)  // SB16 signed voice I/O
  55.  
  56.  
  57.  
  58. /* DSP port address offsets from base port */
  59. #define dspoffsetWrBuf     0xC    /* DSP Write Buffer address */
  60. #define dspoffsetReadData  0xA    /* DSP Read Data address */
  61. #define dspoffsetDataAvail 0xE    /* DSP Data Available address */
  62. #define dspoffsetReset     0x6    /* dsp reset port address */
  63. #define dspoffsetDMA8Ack   0xE    /* 8-bit DMA  interrupt acknowledge (same
  64.  as read data port */
  65. #define dspoffsetDMA16Ack  0xF    /* 16-bit DMA interrupt acknowledge */
  66. #define dspoffsetMixerAddr 0x4    /* mixer address (register select) port */
  67. #define dspoffsetMixerData 0x5    /* mixer data port */
  68.  
  69.  
  70. /* Mixer registers */
  71. #define MASTERVOL    0X22
  72. #define VOCVOL       0X04
  73. #define FMVOL        0X26
  74. #define CDVOL        0X28
  75. #define MICVOL       0X0A
  76. #define ADCSELECT    0X0C
  77. #define INTSTATUS    0X82
  78. #define SB16OUTPUT   0X3C
  79. #define SB16INPUTL   0X3D
  80. #define SB16INPUTR   0X3E
  81.  
  82. /* SB16 Interrupt status bits */
  83. #define DMA8IntStatBit   1
  84. #define DMA16IntStatBit  2
  85. #define MPU401IntStatBit 4
  86.  
  87.  
  88. #define dspReady 0xAA     /* byte returned by dsp when ready after reset */
  89.  
  90.  
  91. #define DMAMODEWRITE  0x54    // partial mode.  fill in with channel
  92. #define DMAMODEREAD   0x58    // same.
  93.  
  94.